package com.zg.common.core.dao.datapush.entity;

import com.zg.common.core.dao.BaseEntity;
import lombok.Data;

import java.util.Date;

/**
 * 推送记录实体（增强版）
 * @author zg
 */
@Data
public class DpPushRecord extends BaseEntity {

    /**
     * 任务ID
     */
    private Long taskId;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 单据类型
     */
    private String documentType;

    /**
     * 推送方式 (database-数据库, rest-接口)
     */
    private String pushMethod;

    /**
     * 推送模式 (full-全量, increment-增量)
     */
    private String pushMode;

    /**
     * 触发类型 (manual-手动, cron-定时, interval-间隔, retry-重试)
     */
    private String triggerType;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 执行耗时（毫秒）
     */
    private Long duration;

    /**
     * 执行状态 (running-运行中, success-成功, failed-失败, partial-部分成功)
     */
    private String status;

    /**
     * 总记录数
     */
    private Integer totalCount;

    /**
     * 成功推送数
     */
    private Integer successCount;

    /**
     * 失败推送数
     */
    private Integer failedCount;

    /**
     * 错误信息
     */
    private String errorMessage;

    /**
     * 重试次数
     */
    private Integer retryCount;

    /**
     * 父记录ID（重推时关联原记录）
     */
    private Long parentRecordId;
}
